home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
Xi
/
XListInputDevices.z
/
XListInputDevices
Wrap
Text File
|
1998-10-30
|
11KB
|
265 lines
XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....3333))))XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))
NNNNAAAAMMMMEEEE
XListInputDevices, XFreeDeviceList - list available input
devices
SSSSYYYYNNNNTTTTAAAAXXXX
XDeviceInfo *XListInputDevices(_d_i_s_p_l_a_y, _n_d_e_v_i_c_e_s__r_e_t_u_r_n)
Display *_d_i_s_p_l_a_y;
int *_n_d_e_v_i_c_e_s__r_e_t_u_r_n;
XFreeDeviceList(_l_i_s_t)
XDeviceInfo *_l_i_s_t;
AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
_d_i_s_p_l_a_y Specifies the connection to the X server.
_n_d_e_v_i_c_e_s__r_e_t_u_r_n
Specifies a pointer to a variable where the
number of available devices can be returned.
_l_i_s_t Specifies the list of devices to free. The
_X_F_r_e_e_D_e_v_i_c_e_L_i_s_t function frees the list of
available extension input devices.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The _X_L_i_s_t_I_n_p_u_t_D_e_v_i_c_e_s request lists the available extension
input devices. This list includes the X pointer and X
keyboard, any other input devices that are currently
accessible through the X server, and any input devices that
are not currently accessible through the X server but could
be accessed if requested.
Some server implementations may make all input devices
available at the time the server is initialized. Others may
wait until requested by a client to access an input device.
In the latter case, it is possible that an input device will
be listed as available at one time but not at another.
For each input device available to the server, the
XListInputDevices request returns an XDeviceInfo structure.
That structure contains a pointer to a list of structures,
each of which contains information about one class of input
supported by the device.
The XDeviceInfo structure is defined as follows:
typedef struct _XDeviceInfo
{
XID id;
Atom type;
char *name;
int num_classes;
int use;
Page 1 (printed 4/30/98)
XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....3333))))XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))
XAnyClassPtr inputclassinfo;
} XDeviceInfo;
The id is a number in the range 0-128 that uniquely
identifies the device. It is assigned to the device when it
is initialized by the server.
The type field is of type Atom and indicates the nature of
the device.
The name field contains a pointer to a null-terminated
string that corresponds to one of the defined device types.
The name will correspond to one of the following strings
(defined in the header file _X_I._h:
XI_MOUSE XI_TABLET XI_KEYBOARD XI_TOUCHSCREEN XI_TOUCHPAD
XI_BUTTONBOX XI_BARCODE XI_TRACKBALL XI_QUADRATURE
XI_ID_MODULE XI_ONE_KNOB XI_NINE_KNOB XI_KNOB_BOX
XI_SPACEBALL XI_DATAGLOVE XI_EYETRACKER XI_CURSORKEYS
XI_FOOTMOUSE
These names may be directly compared with the name field of
the XDeviceInfo structure, or used in an XInternAtom request
to return an atom that can be compared with the type field
of the XDeviceInfo structure.
The num_classes field is a number in the range 0-255 that
specifies the number of input classes supported by the
device for which information is returned by
ListInputDevices. Some input classes, such as class Focus
and class Proximity do not have any information to be
returned by ListInputDevices.
The use field specifies how the device is currently being
used. If the value is _I_s_X_K_e_y_b_o_a_r_d, the device is currently
being used as the X keyboard. If the value is _I_s_X_P_o_i_n_t_e_r,
the device is currently being used as the X pointer. If the
value is _I_s_X_E_x_t_e_n_s_i_o_n_D_e_v_i_c_e, the device is available for use
as an extension device.
The inputclassinfo field contains a pointer to the first
input-class specific data. The first two fields are common
to all classes.
The class field is a number in the range 0-255. It uniquely
identifies the class of input for which information is
returned. Currently defined classes are KeyClass,
ButtonClass, and ValuatorClass.
The length field is a number in the range 0- 255. It
specifies the number of bytes of data that are contained in
this input class. The length includes the class and length
Page 2 (printed 4/30/98)
XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....3333))))XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))
fields.
The XKeyInfo structure describes the characteristics of the
keys on the device. It is defined as follows:
typedef struct _XKeyInfo {
XID class;
int length;
unsigned short min_keycode;
unsigned short max_keycode;
unsigned short num_keys;
} XKeyInfo;
min_keycode is of type KEYCODE. It specifies the minimum
keycode that the device will report. The minimum keycode
will not be smaller than 8.
max_keycode is of type KEYCODE. It specifies the maximum
keycode that the device will report. The maximum keycode
will not be larger than 255.
num_keys specifies the number of keys that the device has.
The XButtonInfo structure defines the characteristics of the
buttons on the device. It is defined as follows:
typedef struct _XButtonInfo {
XID class;
int length;
short num_buttons;
} XButtonInfo;
num_buttons specifies the number of buttons that the device
has.
The XValuatorInfo structure defines the characteristics of
the valuators on the device. It is defined as follows:
typedef struct _XValuatorInfo {
XID class;
int length;
unsigned char num_axes;
unsigned char mode;
unsigned long motion_buffer;
XAxisInfoPtr axes;
} XValuatorInfo;
num_axes contains the number of axes the device supports.
mode is a constant that has one of the following values:
Absolute or Relative. Some devices allow the mode to be
changed dynamically via the SetDeviceMode request.
Page 3 (printed 4/30/98)
XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....3333))))XXXXLLLLiiiissssttttIIIInnnnppppuuuuttttDDDDeeeevvvviiiicccceeeessss((((3333XXXX11111111))))
motion_buffer_size is a cardinal number that specifies the
number of elements that can be contained in the motion
history buffer for the device.
The axes field contains a pointer to an XAxisInfo structure.
The XAxisInfo structure is defined as follows:
typedef struct _XAxisInfo {
int resolution;
int min_value;
int max_value;
} XAxisInfo;
The resolution contains a number in counts/meter.
The min_val field contains a number that specifies the
minimum value the device reports for this axis. For devices
whose mode is Relative, the min_val field will contain 0.
The max_val field contains a number that specifies the
maximum value the device reports for this axis. For devices
whose mode is Relative, the max_val field will contain 0.
To free the _X_D_e_v_i_c_e_I_n_f_o array created by _X_L_i_s_t_I_n_p_u_t_D_e_v_i_c_e_s,
use _X_F_r_e_e_D_e_v_i_c_e_L_i_s_t.
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
none.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
_P_r_o_g_r_a_m_m_i_n_g _w_i_t_h _X_l_i_b
Page 4 (printed 4/30/98)